#include "Sort.h"

int main()
{
	int a[] = { 9,1,2,5,7,4,8,6,3,5 };
	InsertSort(a, sizeof(a) / sizeof(a[0]));
	printf("InsertSort: ");
	PrintArray(a, sizeof(a) / sizeof(a[0]));

	int a1[] = { 9,1,2,5,7,4,8,6,3,5 };
	SelectSort(a1, sizeof(a1) / sizeof(a1[0]));
	printf("SelectSort: ");
	PrintArray(a1, sizeof(a1) / sizeof(a1[0]));

	int a2[] = { 9,1,2,5,7,4,8,6,3,5 };
	ShellSort(a2, sizeof(a2) / sizeof(a2[0]));
	printf("ShellSort: ");
	PrintArray(a2, sizeof(a2) / sizeof(a2[0]));

	int a3[] = { 9,1,2,5,7,4,8,6,3,5 };
	BubbleSort(a3, sizeof(a3) / sizeof(a3[0]));
	printf("BubbleSort: ");
	PrintArray(a3, sizeof(a3) / sizeof(a3[0]));

	//int a4[] = { 9,1,2,5,7,4,8,6,3,5 };
	//SelectSort(a4, sizeof(a4) / sizeof(a4[0]));
	//PrintArray(a4, sizeof(a4) / sizeof(a4[0]));

	//int a5[] = { 9,1,2,5,7,4,8,6,3,5 };
	//SelectSort(a5, sizeof(a5) / sizeof(a5[0]));
	//PrintArray(a5, sizeof(a5) / sizeof(a5[0]));


	return 0;
}






























//#include<time.h>
//#include<stdlib.h>
//#include"Sort.h"
//
//void TestShellSort()
//{
//	int a[] = { 9,1,2,5,7,4,8,6,3,5,1,2,3,5,1,8,3 };
//	ShellSort(a, sizeof(a) / sizeof(int));
//	PrintArray(a, sizeof(a) / sizeof(int));
//}
//
//void TestBubbleSort()
//{
//	int a[] = { 9,1,2,5,7,4,8,6,3,5,1,2,3,5,1,8,3 };
//	BubbleSort(a, sizeof(a) / sizeof(int));
//	PrintArray(a, sizeof(a) / sizeof(int));
//}
//
//void TestHeapSort()
//{
//	int a[] = { 9,1,2,5,7,4,8,6,3,5,1,2,3,5,1,8,3 };
//	HeapSort(a, sizeof(a) / sizeof(int));
//	PrintArray(a, sizeof(a) / sizeof(int));
//}
//
//void TestSelectSort()
//{
//	int a[] = { 9,1,2,5,7,4,8,6,3,5,1,2,3,5,1,8,3 };
//	SelectSort(a, sizeof(a) / sizeof(int));
//	PrintArray(a, sizeof(a) / sizeof(int));
//}
//
//void TestQuickSort()
//{
//	int a[] = { 6,1,2,7,9,3,4,5,10,8 };
//	//int a[] = { 9,1,2,5,7,4,8,6,3,5,1,2,3,5,1,8,3 };
//	QuickSortNonR(a, 0, sizeof(a) / sizeof(int) - 1);
//	PrintArray(a, sizeof(a) / sizeof(int));
//}
//
//void TestMergeSort()
//{
//	//int a[] = { 6,1,2,7,9,3,4,5,10,8 };
//	int a[] = { 10,6,7,1,3,9,4,2,5,1,1 };
//	MergeSortNonR(a, sizeof(a) / sizeof(int));
//	PrintArray(a, sizeof(a) / sizeof(int));
//}
//
//void TestCountSort()
//{
//	//int a[] = { 10,6,7,1,3,9,4,2,5,1,1 };
//	int a[] = { 10,6,7,3,9,4,5,3,6,9,8 };
//	CountSort(a, sizeof(a) / sizeof(int));
//	PrintArray(a, sizeof(a) / sizeof(int));
//}
//
//// 20:22
//void TestOP()
//{
//	srand(time(0));
//	const int N = 1000000;
//	int* a1 = (int*)malloc(sizeof(int) * N);
//	int* a2 = (int*)malloc(sizeof(int) * N);
//	int* a3 = (int*)malloc(sizeof(int) * N);
//	int* a4 = (int*)malloc(sizeof(int) * N);
//	int* a5 = (int*)malloc(sizeof(int) * N);
//	int* a6 = (int*)malloc(sizeof(int) * N);
//	int* a7 = (int*)malloc(sizeof(int) * N);
//
//	for (int i = N - 1; i >= 0; --i)
//	{
//		a1[i] = rand() + i;
//		a2[i] = a1[i];
//		a3[i] = a1[i];
//		a4[i] = a1[i];
//		a5[i] = a1[i];
//		a6[i] = a1[i];
//		a7[i] = a1[i];
//	}
//
//	int begin1 = clock();
//	//InsertSort(a1, N);
//	int end1 = clock();
//
//	int begin2 = clock();
//	ShellSort(a2, N);
//	int end2 = clock();
//
//	int begin7 = clock();
//	//BubbleSort(a7, N);
//	int end7 = clock();
//
//	int begin3 = clock();
//	//SelectSort(a3, N);
//	int end3 = clock();
//
//	int begin4 = clock();
//	HeapSort(a4, N);
//	//QuickSort1(a4, 0, N - 1);
//	int end4 = clock();
//
//	int begin5 = clock();
//	QuickSort1(a5, 0, N - 1);
//	int end5 = clock();
//
//	int begin6 = clock();
//	//MergeSort(a6, N);
//	CountSort(a6, N);
//	int end6 = clock();
//
//	printf("InsertSort:%d\n", end1 - begin1);
//	printf("ShellSort:%d\n", end2 - begin2);
//	printf("BubbleSort:%d\n", end7 - begin7);
//
//	printf("SelectSort:%d\n", end3 - begin3);
//	printf("HeapSort:%d\n", end4 - begin4);
//	printf("QuickSort1:%d\n", end5 - begin5);
//	//printf("MergeSort:%d\n", end6 - begin6);
//	printf("CountSort:%d\n", end6 - begin6);
//
//
//	free(a1);
//	free(a2);
//	free(a3);
//	free(a4);
//	free(a5);
//	free(a6);
//	free(a7);
//}
//
////int Func(int n)
////{
////	if (n == 0)
////		return 0;
////
////	return Func(n - 1) + n;
////}
//
//int main()
//{
//	TestOP();
//	//TestBubbleSort();
//	//TestHeapSort();
//	//TestSelectSort();
//	//TestQuickSort();
//	//TestMergeSort();
//
//	//TestCountSort();
//
//	//printf("%d\n", Func(100000));
//
//	return 0;
//}